package cn.kai.ymcc.mq;

import cn.kai.ymcc.dto.MessageSendDto;
import com.alibaba.fastjson.JSON;
import org.apache.rocketmq.client.producer.SendResult;
import org.apache.rocketmq.client.producer.SendStatus;
import org.apache.rocketmq.spring.core.RocketMQTemplate;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;

/**
 * @Author 12469
 * @Date 2022/7/25 23:02
 * @PackageName:cn.kai.ymcc.mq
 * @ClassName: SendMessageProducer
 * @Description:
 * @Version 1.0
 */

@Component
public class SendCourseMessageProducer {
    @Autowired
    private RocketMQTemplate rocketMQTemplate;

    /**
     * 发送短信的生产者
     * @param dto
     * @return
     */
    public void sendSmsMessage(MessageSendDto dto){
        //一下操作是：为了方便消费方重新将message封装成MediaFile对象
        String messageFileJsonStr = JSON.toJSONString(dto);
        rocketMQTemplate.sendOneWay("sendmsg-topic:sms-tags", messageFileJsonStr);
    }

    /**
     * 发送邮箱的生产者
     * @param dto
     * @return
     */
    public void sendEmailMessage(MessageSendDto dto){
        //一下操作是：为了方便消费方重新将message封装成MediaFile对象
        String messageFileJsonStr = JSON.toJSONString(dto);
        rocketMQTemplate.sendOneWay("sendmsg-topic:email-tags", messageFileJsonStr);
    }

    /**
     * 发送站内信的生产者
     * @param dto
     * @return
     */
    public void sendStationMessage(MessageSendDto dto){
        //一下操作是：为了方便消费方重新将message封装成MediaFile对象
        String messageFileJsonStr = JSON.toJSONString(dto);
        rocketMQTemplate.syncSend("sendmsg-topic:station-tags", messageFileJsonStr);
    }
}
